package com.smedi.ismedi.inmail.core.domain.service;

import com.smedi.ismedi.inmail.core.domain.aggregatemodel.TaskRecord;

import java.util.List;

public interface TaskDomainService {
    Boolean updateTaskRecord(TaskRecord taskRecord);

    TaskRecord addTaskRecord(TaskRecord taskRecord);

    TaskRecord editTaskRecord(TaskRecord taskRecord);

    Boolean deleteTaskList(List<Long> ids);

    Boolean deleteTaskListBySourceIds(List<TaskRecord> taskRecords);

    List<TaskRecord> readTaskList(List<Long> ids);

    TaskRecord readTaskDaily(TaskRecord taskRecord);

    List<TaskRecord> queryTaskByTypeAndStatus(String taskName, String status);

    List<TaskRecord> queryTaskByBySourceFromIdAndOldStatus(Long sourceFromId, String oldStatus);

    boolean updateTaskStatusRegularly();

    boolean updateTaskStatusWeekly();

    boolean updateTaskStatusMonthly();

    boolean deleteHistoryTask();

    Boolean cancelTask(TaskRecord taskRecord);
}
